string, 'label' => string, 'resolve' => callable( string $ref, array $context ) ]. */ public static function register( array $definition ) { if ( empty( $definition['id'] ) || ! is_callable( $definition['resolve'] ?? null ) ) { throw new \InvalidArgumentException( 'Data_Source_Registry::register() requires an id and a resolve callable.' ); } self::$sources[ $definition['id'] ] = $definition; } public static function get( $id ) { return self::$sources[ $id ] ?? null; } public static function all() { return array_values( self::$sources ); } }