Each platform has a rule class exposing specs() (char limits, aspect
ratios, media limits, format-specific constraints) and summary() (a
short concise description the agent can render into instructions).
Registered in AppServiceProvider::configurePlatformRules() mapping
Platform enum values to rule classes. Both InstagramFacebook and
LinkedInPage share rules with their non-business siblings.
Contract + Registry follow the lookup-map pattern. Registry is a
static registry seeded at boot — rules are cheap enough to new up
per request.
Tests cover all 12 platforms via Pest dataset and verify the forMany
fan-out, clear/register behavior, and representative summaries.