validateInput method
Validate input before execution and permission checks.
Implementation
@override
ValidationResult validateInput(Map<String, dynamic> input) {
final action = input['action'] as String?;
if (action == null) {
return const ValidationResult.invalid('action is required');
}
if (_coordActions.contains(action) && input['coordinates'] == null) {
return ValidationResult.invalid(
'coordinates [x, y] required for $action',
);
}
if (action == 'type' && input['text'] == null) {
return const ValidationResult.invalid('text is required for type');
}
if (action == 'key' && input['key'] == null) {
return const ValidationResult.invalid('key is required for key action');
}
if (action == 'scroll' && input['scroll_direction'] == null) {
return const ValidationResult.invalid(
'scroll_direction required for scroll',
);
}
return const ValidationResult.valid();
}