The shared rules() returned only meta sub-keys, so every caller still repeated its own 'platforms.*.meta' => array parent (with slightly different sometimes/ nullable combos). Fold the parent into rules() with a single safe contract so callers just spread one source for the whole meta block. |
||
|---|---|---|
| .. | ||
| Ai | ||
| ApiKey | ||
| Asset | ||
| Auth | ||
| Automations | ||
| Discord | ||
| Invite | ||
| Label | ||
| Post | ||
| PostComment | ||
| PostTemplate | ||
| Settings | ||
| Workspace | ||