new FeatureFlagDefinition( key: $key, owner: (string) ($flag['owner'] ?? 'unowned'), default: (bool) ($flag['default'] ?? false), removalTarget: $flag['removal_target'] ?? null, dimensions: $flag['dimensions'] ?? ['global', 'environment', 'school_id', 'domain_profile'] ), array_keys($flags), array_values($flags) ); } public function find(string $key): ?FeatureFlagDefinition { foreach ($this->all() as $flag) { if ($flag->key === $key) { return $flag; } } return null; } public function export(): array { return array_map(fn (FeatureFlagDefinition $flag): array => $flag->toArray(), $this->all()); } }