/**
 * Creates a schema which prefixes the keys of the original schema with a given script name.
 * Use this when adding fields to a schema for localized scripts, e.g. `jaKana` or `jaHani`.
 *
 * E.g.
 * ```ts
 * interface NameSchema {
 *   firstName?: string;
 *   lastName?: string;
 * }
 *
 * type JaKanaNameSchema = LocalizedScriptSchema<NameSchema, 'jaKana'>;
 *
 * const exampleNameInKatakana: JaKanaNameSchema = {
 *   jaKanaFirstName: 'アレキサンダー',
 *   jaKanaLastName: 'パトリック',
 * };
 * ```
 */
export type LocalizedScriptSchema<T, Script extends string> = {
    [K in keyof T as K extends string ? `${Script}${Capitalize<K>}` : never]: T[K];
};
