A flexible framework for FMI-based co-simulation of human-centred cyber-physical systems