Structured data without lying to Google

Structured data is a machine description of what is already on the page. Google requires the JSON-LD text to be visible to the visitor. Hidden questions, invented stars, or a price that is not on the page are a violation, not SEO.

What is on the page, and only that

FAQPage fits when the visitor can open the questions. BreadcrumbList fits when the trail is on screen. ProfessionalService fits when the name, phone, and description are the real business.

Star ratings without reviews a person can read, or a price in the markup with no price on the page, get dropped. Google publishes this rule in its rich-result guidelines.

A type, and when it is legitimate
TypeWhenWhen not
FAQPageQuestions visible on the pageQuestions only in code
BreadcrumbListA visible trailAn invented path
ProfessionalServiceThe real business detailsA phone or address that is not yours
Review / AggregateRatingReal reviews on the pageA score with no source