toJson method

Map<String, dynamic> toJson({
  1. String? screen,
  2. String? route,
})

Genera el JSON de contexto consumido por el servidor MCP externo.

Formato:

{
  "screen": "LoginScreen",
  "route": "/login",
  "timestamp": "...",
  "widgets": [{ "key": "auth.login_button", "type": "ElevatedButton", ... }]
}

Si screen es null, intenta inferirlo del primer widget que tenga screen definido.

Implementation

Map<String, dynamic> toJson({String? screen, String? route}) {
  final detectedScreen = screen ?? _detectCurrentScreen();
  return {
    'screen': detectedScreen,
    'route': route ?? '/${detectedScreen.toLowerCase()}',
    'timestamp': DateTime.now().toUtc().toIso8601String(),
    'widgets': _widgets.values.map((e) => e.metadata.toJson()).toList(),
  };
}