src/vs/workbench/browser/layout.ts/Layout/getInitialEditorsState
class Layout:	private getInitialEditorsState(): IInitialEditorsState | undefined {

		// Check for editors / editor layout from `defaultLayout` options first
		const defaultLayout = this.environmentService.options?.defaultLayout;
		if ((defaultLayout?.editors?.length || defaultLayout?.layout?.editors) && (defaultLayout.force || this.storageService.isNew(StorageScope.WORKSPACE))) {
			this._openedDefaultEditors = true;

			return {
				layout: defaultLayout.layout?.editors,
				filesToOpenOrCreate: defaultLayout?.editors?.map(editor => {
					// TODO@bpasero remove me eventually
					const editor2 = editor as any;
					const legacySelection = editor2.selection && editor2.selection.start && isNumber(editor2.selection.start.line) ? {
						startLineNumber: editor2.selection.start.line,
						startColumn: isNumber(editor2.selection.start.column) ? editor2.selection.start.column : 1,
						endLineNumber: isNumber(editor2.selection.end.line) ? editor2.selection.end.line : undefined,
						endColumn: isNumber(editor2.selection.end.line) ? (isNumber(editor2.selection.end.column) ? editor2.selection.end.column : 1) : undefined,
					} : undefined;

					return {
						viewColumn: editor.viewColumn,
						fileUri: URI.revive(editor.uri),
						openOnlyIfExists: editor.openOnlyIfExists,
						options: {
							selection: legacySelection,
							...editor.options // keep at the end to override legacy selection/override that may be `undefined`
						}
					};
				})
			};
		}

		// Then check for files to open, create or diff/merge from main side
		const { filesToOpenOrCreate, filesToDiff, filesToMerge } = this.environmentService;
		if (filesToOpenOrCreate || filesToDiff || filesToMerge) {
			return { filesToOpenOrCreate, filesToDiff, filesToMerge };
		}

		return undefined;
	}