#2060 Add fieldgroups and examples supporting Paid Media
Issue #2060 will involve multiple PRs to keep the review effort manageable.
This stacked PR should not be merged before PR #2061 and should be rebased after that one is merged.
This PR adds the fieldgroups that build upon the datatypes added in #2061. These new fieldgroups capture Paid Media domain heirarchy knowledge across ad networks (meta, linkedIn, google ads, etc) such as:
- Paid Media Accounts
- Paid Media Campaigns
- Paid Media Ad Groups/Ad Squads/Ad Sets
- Paid Media Ads and Experiences
- Paid Media Assets (videos, images, etc)
It also captures performance metrics concepts, which can be reused at the various hierarchy levels mentioned above. For example, clicks/impressions performance metrics might apply at the Asset level, Ad level, Ad Group level, or Campaign level.
This PR also adds a validation script ("npm run validate") to ensure example files actually adhere to their associated schemas, and that schema "$id" references to other remote schemas actually refer to either:
- an unpublished schema $id that is actually present in the repository (useful for introducing new unpublished schemas in PRs that will still be evaluated for schema adherence)
- a published external schema that can be fetched via http/s and included for schema adherence evaluation