ExtendedMetadata
type ExtendedMetadata = {  audit?: string;  bytecodeUri: string;  changelog?: string;  compilers?: Record<    "solc" | "zksolc",    Array<{      bytecodeUri: string;      compilerVersion: string;      evmVersion: string;      metadataUri: string;    }>  >;  compositeAbi?: Abi;  constructorParams?: Record<    string,    {      defaultValue?: string;      description?: string;      displayName?: string;      hidden?: boolean;    }  >;  defaultExtensions?: Array<{    extensionName: string;    extensionVersion: string;    publisherAddress: string;  }>;  defaultModules?: Array<{    moduleName: string;    moduleVersion: string;    publisherAddress: string;  }>;  deployType?: "standard" | "autoFactory" | "customFactory";  description?: string;  displayName?: string;  externalLinks?: Array<{ name: string; url: string }>;  factoryDeploymentData?: {    customFactoryInput?: {      customFactoryAddresses: Record<string, string>;      factoryFunction: string;      params: Array<{ name: string; type: string }>;    };    factoryAddresses?: Record<string, string>;    implementationAddresses: Record<string, string>;    implementationInitializerFunction: string;    modularFactoryInput?: { hooksParamName: string };  };  isDeployableViaFactory?: boolean;  isDeployableViaProxy?: boolean;  logo?: string;  metadataUri: string;  name: string;  networksForDeployment?: {    allNetworks?: boolean;    networksEnabled?: Array<number>;  };  publisher?: string;  readme?: string;  routerType?: "none" | "plugin" | "dynamic" | "modular";  tags?: Array<string>;  version: string;};
type audit = string;
type bytecodeUri = string;
type changelog = string;
type compilers = Record<  "solc" | "zksolc",  Array<{    bytecodeUri: string;    compilerVersion: string;    evmVersion: string;    metadataUri: string;  }>>;
type compositeAbi = Abi;
type constructorParams = Record<  string,  {    defaultValue?: string;    description?: string;    displayName?: string;    hidden?: boolean;  }>;
type defaultExtensions = Array<{  extensionName: string;  extensionVersion: string;  publisherAddress: string;}>;
type defaultModules = Array<{  moduleName: string;  moduleVersion: string;  publisherAddress: string;}>;
type deployType = "standard" | "autoFactory" | "customFactory";
type description = string;
type displayName = string;
type externalLinks = Array<{ name: string; url: string }>;
type factoryDeploymentData = {  customFactoryInput?: {    customFactoryAddresses: Record<string, string>;    factoryFunction: string;    params: Array<{ name: string; type: string }>;  };  factoryAddresses?: Record<string, string>;  implementationAddresses: Record<string, string>;  implementationInitializerFunction: string;  modularFactoryInput?: { hooksParamName: string };};
type isDeployableViaFactory = boolean;
type isDeployableViaProxy = boolean;
type logo = string;
type metadataUri = string;
type name = string;
type networksForDeployment = {  allNetworks?: boolean;  networksEnabled?: Array<number>;};
type publisher = string;
type readme = string;
type routerType = "none" | "plugin" | "dynamic" | "modular";
type tags = Array<string>;
type version = string;