* * Extracts attributes from value object by a given field name. */ interface AttributeExtractor { /** * @param T $value */ public function extract(object $value, string $field): StdClass; public function extractFromNull(string $field): StdClass; }